Network Interface Controllers or NIC's are communication devices that are used to send and receive messages from one node (computing system) to another node through a communication network. These NIC's reside in every computer system that accesses a network or the internet. NIC's may be found in laptop computers, wireless PDA's, Enterprise servers, or compute-intensive clustered processors, such as research computer clusters.
The advent of computer networking has given rise to a number of devices that connect computer systems to packet switched data networks, such as the Internet. These devices typically include interfaces to the computer system and the data network, as well as a buffer memory, for buffering packets of data in transit between the computer system and the data network. This buffer memory allows data to be downloaded from a host computer system when the host computer system is able to do so, and subsequently transmitted across the data network when the data network can accommodate a transmission, thereby increasing the overall efficiency of communications by the computer system across the data network.
There are typically two buffers in such a network interface device: a transmit buffer for storing data from the computer system to be transmitted onto the data network, and a receive buffer, for receiving data from the data network to be transmitted to the computer system. The transmit buffer and the receive buffer are typically resident in the system memory and are managed by a driver program that executes on the system processor based on interrupts from the NIC hardware. The data moves across a system bus in order to be stored in the system memory. Once the data is in system memory, the application that will manipulate the data is queued to take over the system processor execution.
During a transmit operation, the application program sending the data would store pointers, to the location of the data, in a register accessible by the NIC. The NIC would access the system bus first to retrieve the data pointers, then again to move the data into the NIC hardware for transmission. The application program and the data in system memory must wait until the data has been transferred through the network to a destination device and the destination has acknowledged receipt of the data. In the propagation through the network, errors may occur that prevent the delivery of the packet to the destination device. In this event an intermediate level software program, such as the Transfer Control Protocol/Internet Protocol (TCP/IP) will detect a timeout on the acknowledgement from the destination device. The NIC hardware would then once again access the system bus and move the data into the hardware for retransmission to the destination device.
The application program must wait for the successful transfer of the data to the destination device before it can use the system memory for other tasks. In the event of a heavily trafficked network or one susceptible to data loss due to switching anomalies, this operation can severely add to the latency of the application program and adversely impact system performance.
Thus, a need still remains for a computer system with network interface retransmit that can enhance the execution of application programs and overall system performance. In view of the ever increasing dependency on the internet for business and recreational applications, it is increasingly critical that answers be found to these problems. In view of the ever-increasing commercial competitive pressures, along with growing consumer expectations and the diminishing opportunities for meaningful product differentiation in the marketplace, it is critical that answers be found for these problems. Additionally, the need to save costs, improve efficiencies and performance, and meet competitive pressures, adds an even greater urgency to the critical necessity for finding answers to these problems.
Solutions to these problems have been long sought but prior developments have not taught or suggested any solutions and, thus, solutions to these problems have long eluded those skilled in the art.